//
// Created by Administrator on 2025/3/18.
//

#ifndef LVGL_ELF_GAME_DATA_DAO_H
#define LVGL_ELF_GAME_DATA_DAO_H
#include "../../ui_screen_common/log_wrapper.h"
#include "stdbool.h"

#define ELF_GAME_MAX_MOOD_VALUE 100
#define ELF_GAME_MOOD_TEXT_COUNT 3  // 每个范围有 3 条语料


// 道具数据结构体
typedef struct {
    uint32_t id; // 道具ID
    char name[32]; // 道具名称
    char image[64]; // 道具图片路径
    uint32_t coin; // 道具价格
    uint32_t count; // 道具数量
    uint8_t type; // 道具类型
    uint8_t mood_value; // 道具心情值
}prop_data_t;

// 精灵游戏数据结构体
typedef struct {
    bool is_connect_network;
    uint32_t coin;// 金币数量
    char elf_image[64];
    uint8_t mood; // 心情
    uint8_t intimate; // 亲密度
    prop_data_t *prop_list; // 道具列表
    uint32_t prop_count; // 道具数量
    uint8_t current_prop_index; // 当前选择的道具索引
    int current_use_prop_id; // 当前正在使用的道具ID
//    bool is_request_data_success;
} elf_game_data_t;

// 心情范围与对应飘字的数据结构
typedef struct {
    int min;  // 心情值最小范围
    int max;  // 心情值最大范围
    const char *texts[ELF_GAME_MOOD_TEXT_COUNT]; // 语料数组
} elf_game_mood_text_t;

extern elf_game_data_t elf_game_data;

void ui_elf_game_data_init(elf_game_data_t *data);
prop_data_t *get_prop_info_by_id(int id);
void elf_game_add_mood(uint8_t mood);
// 获取对应心情值的飘字
const char *elf_game_get_mood_text(int mood_value);
#endif //LVGL_ELF_GAME_DATA_DAO_H
